package com.xuecheng.content.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.xuecheng.base.model.PageParams;
import com.xuecheng.base.model.PageResult;
import com.xuecheng.content.model.dto.*;
import com.xuecheng.content.model.po.CourseBase;

/**
 * <p>
 * 课程基本信息 服务类
 * </p>
 *
 * @author 勾新杰
 * @since 2024-12-17
 */
public interface ICourseBaseService extends IService<CourseBase> {

    /**
     * 课程分页查询
     * @param pageParams 分页参数
     * @param queryCourseParams 查询参数
     * @return 分页结果
     */
    PageResult<CourseBaseAuditDTO> pageQueryCourseBase(PageParams pageParams, QueryCourseParamsDTO queryCourseParams);

    /**
     * 新增课程基本信息
     * @param saveCourseBaseDTO 新增课程基本信息
     * @return 新增课程基本信息
     */
    CourseBaseInfoDTO save(SaveCourseBaseDTO saveCourseBaseDTO);

    /**
     * 根据课程id查询课程基本信息、营销信息
     * @param id 课程id
     * @return 课程基本信息
     */
    CourseBaseInfoDTO getCourseBaseInfoById(Long id);

    /**
     * 修改课程基本信息
     * @param updateCourseBaseDTO 修改课程基本信息
     * @return 修改课程基本信息
     */
    CourseBaseInfoDTO update(UpdateCourseBaseDTO updateCourseBaseDTO);

    /**
     * 根据课程id删除课程信息
     * @param id 课程id
     */
    void deleteById(Long id);

    /**
     * 根据课程id查询课程发布信息
     * @param courseId 课程id
     * @return 课程发布信息
     */
    CoursePreviewDTO getPublishWhole(Long courseId);
}
